package bud.listener;

import java.util.Hashtable;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import bud.vo.MemberDTO;

import lombok.extern.slf4j.Slf4j;

// 웹 어플리케이션에서 이벤트 처리하는 방법
// 1. 처리하고자 하는 이벤트를 결정
// 2. 해당 이벤트에 대한 처리자(listener)의 구현자를 만드록,
// 3. web.xml 에 이벤트 처리자를 등록(addListener)

// 웹 어플리케이션에서의 이벤트 분류
// 1. request 단위 이벤트(ServletRequestAttributeListener)
// 2. session 단위 이벤트(HttpSessionListener, HttpSessionAttributeListener, HttpSessionBindingListener)
// 3. ServletContext 단위 이벤트(ServletContextListener)

@Slf4j
public class ApplicationListener implements  ServletContextListener{
	
	public Map<String, MemberDTO> userList;

	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		log.info(arg0.getServletContext().getContextPath() + "어플리케이션 스탑");
	}

	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		log.info(arg0.getServletContext().getContextPath() + "어플리케이션 스타트");
		userList = new Hashtable<String, MemberDTO>();
		ServletContext ctx = arg0.getServletContext();
		ctx.setAttribute("userList", userList);
		ctx.setAttribute("cPath", ctx.getContextPath());
		
	}
}
